package com.gopay.common.domain.dts;

import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Version;

import org.hibernate.annotations.GenericGenerator;

import com.gopay.common.domain.BaseEntity;

@Entity
@Table(name = "DTS_BUSINESS_ACTIVITY_LOG")
public class DtsBusinessActivityLog extends BaseEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = 3094253273802128491L;

	@Id
	@GeneratedValue(generator = "uuid")
	@GenericGenerator(name = "uuid", strategy = "uuid")
	@Column(name = "ID")
	private String id;

	@Column(name = "DOMAIN")
	private String domain;

	@Column(name = "ACTIVITY")
	private String activity;

	@Column(name = "STATUS")
	private Integer status;

	@Column(name = "CREATE_TIME")
	private Date createTime;

	@Column(name = "FINISH_TIME")
	private Date finishTime;

	@Column(name = "SNAPKEY")
	private String snapkey;

	@Version
	@Column(name = "VERSION")
	private int version;

	@Lob
	@Basic(fetch = FetchType.EAGER)
	@Column(name = "SNAPSHOT", columnDefinition = "CLOB")
	private String shapshot;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getDomain() {
		return domain;
	}

	public void setDomain(String domain) {
		this.domain = domain;
	}

	public String getActivity() {
		return activity;
	}

	public void setActivity(String activity) {
		this.activity = activity;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getFinishTime() {
		return finishTime;
	}

	public void setFinishTime(Date finishTime) {
		this.finishTime = finishTime;
	}

	public String getSnapkey() {
		return snapkey;
	}

	public void setSnapkey(String snapkey) {
		this.snapkey = snapkey;
	}

	public String getShapshot() {
		return shapshot;
	}

	public void setShapshot(String shapshot) {
		this.shapshot = shapshot;
	}

	public int getVersion() {
		return version;
	}

	public void setVersion(int version) {
		this.version = version;
	}

}
